﻿using System;
using System.Collections.Generic;
using System.Text;

using RAD.LightOne;

namespace RAD.LightOne
{
    #region Documentation
    /// <summary>
    /// Classe "base" para o Lazy genérico, funciona apenas como container a métodos estáticos
    /// não genéricos.
    /// </summary>
    #endregion
    public abstract class Lazy
    {
        public abstract Type Type
        {
            get;
        }

        public abstract void Set(Guid id);

        public static bool IsLazy(Type type)
        {

            return type.IsSubclassOf(typeof(Lazy));
        }

        internal static bool IsILazy(Type type)
        {
            return type.GetInterface(typeof(ILazy).FullName) != null;
        }
    }
}
